Battery-powered electronic devices have become ubiquitous in modern society. The recent rapid expansion of the use of portable devices, electrically powered motors and the like has created a strong demand for fast deployment of battery technologies. The design of a battery-powered device requires many battery-management features, including charge control, battery-capacity monitoring, remaining run-time information, charge-cycle counting, and so on. Generally speaking, the basic task of a Battery Management System (BMS) is to ensure that optimum use is made of the energy inside the battery powering the portable product and that the risk of damage to the battery or surrounding circuitry is prevented. This may be achieved by monitoring and controlling the battery's charging and discharging process. One area where improvements are needed is in the area of battery failure detection. More specifically, there is a need to determine battery failure in advance of an actual failure.